package cn.test.service;

import cn.test.pojo.domain.*;
import cn.test.pojo.vo.StockInfoConfig;
import cn.test.vo.resp.PageResult;
import cn.test.vo.resp.R;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
import java.util.Objects;

/**
 * @author bigBear
 * @version 1.0
 * @date 2024-10-21 13:02
 */
public interface StockService {


    /**
     * 获取国内所有指数
     *
     * @return
     */
    R<List<InnerMarketDomain>> innerIndexAll();

    /**
     * 获取板块信息
     *
     * @return
     */
    R<List<StockBlockDomain>> sectorAllLimit10();

    /**
     * 分页查询股票最新数据，并按照涨幅倒序排序
     *
     * @param page
     * @param pageSize
     * @return
     */
    R<PageResult> getStockPageInfo(Integer page, Integer pageSize);

    /**
     * 获取涨幅前4的股票
     *
     * @return
     */
    R<List<StockRtDomain>> getStockIncreaseBy4();

    /**
     * 获取涨幅和跌幅的股票数量
     *
     * @return
     */
    R<Map<String, List>> getStockUpDownCount();

    /**
     * 导出未涨跌停的股票信息
     *
     * @param response
     * @param page
     * @param pageSize
     */
    void exportStockUndownInfo(HttpServletResponse response, Integer page, Integer pageSize);

    /**
     * 统计国内A股大盘T日和T-1日成交量对比功能（成交量为沪市和深市成交量之和）
     *
     * @return
     */
    R<Map<String, List>> stockTradeVol4InnerMarket();

    /**
     * 查询当前时间下股票的涨跌幅度区间统计功能
     * 如果当前日期不在有效时间内，则以最近的一个股票交易时间作为查询点
     *
     * @return
     */
    R<Map<String, Object>> getStockUpDown();

    /**
     * 功能描述：查询单个个股的分时行情数据，也就是统计指定股票T日每分钟的交易数据；
     * 如果当前日期不在有效时间内，则以最近的一个股票交易时间作为查询时间点
     *
     * @param code 股票编码
     * @return
     */
    R<List<Stock4MinuteDomain>> stockScreenTimeSharing(String code);

    /**
     * 单个个股日K 数据查询 ，可以根据时间区间查询数日的K线数据
     *
     * @param stockCode 股票编码
     */
    R<List<Stock4EvrDayDomain>> stockCreenDkLine(String stockCode);
}
